package com.dstz.form.manager;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.dstz.base.api.response.impl.ResultMsg;
import com.dstz.base.manager.Manager;
import com.dstz.form.model.custsql.FormCustSql;
import com.dstz.form.vo.SqlFieldsVO;

/**
 * @description:自定义列表 的Manager
 * @company:宇宙大魔王
 * @author:xianggang
 * @date:2019-08-31 12:21:58
 */
public interface FormCustSqlManager extends Manager<String, FormCustSql> {
	
	/**
	 * 根据别名获取自定义sql对象
	 * @param code
	 * @param getFields
	 * @return
	 * @return FormCustSql
	 * @author xianggang
	 * @date 2019年9月2日 上午9:59:36
	 */
	FormCustSql getByCode(String code, boolean getFields);
	
	/**
	 * 保存数据
	 * @param formCustSql
	 * @return
	 * @return ResultMsg<String>
	 * @author xianggang
	 * @date 2019年8月31日 下午9:30:28
	 */
	ResultMsg<String> save(FormCustSql formCustSql);
	
	/**
	 * 解析sql
	 * @param formCustSql
	 * @return
	 * @return ResultMsg<String>
	 * @author xianggang
	 * @date 2019年8月31日 下午9:30:38
	 */
	ResultMsg<List<SqlFieldsVO>> parseSql(FormCustSql formCustSql);
	
	/**
	 * 导出自定义sql
	 * @param id
	 * @return
	 * @return ResultMsg<JSONObject>
	 * @author xianggang
	 * @date 2019年9月4日 下午12:07:20
	 */
	ResultMsg<JSONObject> export(String id);
	
	/**
	 * 从JSON文件导入自定义SQL
	 * @param json
	 * @return
	 * @return ResultMsg<String>
	 * @author xianggang
	 * @date 2019年9月4日 下午12:14:46
	 */
	ResultMsg<String> importJson(String json);

	void removeCustSqlByIds(String[] aryIds);
	
}
